package com.wgz.medicalmanagement.repository;

import com.wgz.medicalmanagement.common.entity.ChatMessage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 聊天消息数据访问接口
 */
@Repository
public interface ChatMessageRepository extends JpaRepository<ChatMessage, Long> {
    
    /**
     * 根据用户ID查找所有消息
     * @param userId 用户ID
     * @return 消息列表
     */
    List<ChatMessage> findByUserId(Long userId);
    
    /**
     * 根据用户ID和会话ID查找消息
     * @param userId 用户ID
     * @param sessionId 会话ID
     * @return 消息列表
     */
    List<ChatMessage> findByUserIdAndSessionIdOrderByCreatedAtAsc(Long userId, String sessionId);
    
    /**
     * 根据用户ID获取所有会话ID
     * @param userId 用户ID
     * @return 会话ID列表
     */
    List<String> findDistinctSessionIdByUserIdOrderByCreatedAtDesc(Long userId);
    
    /**
     * 根据用户ID和会话ID删除消息
     * @param userId 用户ID
     * @param sessionId 会话ID
     */
    void deleteByUserIdAndSessionId(Long userId, String sessionId);
} 